home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 4.iso / src / exampleCode / opengl / utilities / isfast / libtk / tk.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-08-02  |  4.8 KB  |  217 lines

  1. #include <X11/Xlib.h>
  2. #include <X11/Xutil.h>
  3. #include <GL/glx.h>
  4. #include <GL/gl.h>
  5. #include <GL/glu.h>
  6.  
  7. /*
  8. ** Nano Window Toolkit.
  9. ** Version 1.0
  10. */
  11.  
  12. /*
  13. ** Window Types
  14. */
  15.  
  16. #define TK_RGB        0
  17. #define TK_INDEX    1
  18. #define TK_SINGLE    0
  19. #define TK_DOUBLE    2
  20. #define TK_DIRECT    0
  21. #define TK_INDIRECT    4
  22. #define TK_ACCUM    8
  23. #define TK_ALPHA    16
  24. #define TK_DEPTH    32
  25. #define TK_OVERLAY    64
  26. #define TK_UNDERLAY    128
  27. #define TK_STENCIL    512
  28.  
  29. /* 
  30. ** Window Masks
  31. */
  32.  
  33. #define TK_IS_RGB(x)        (((x) & TK_INDEX) == 0)
  34. #define TK_IS_INDEX(x)        (((x) & TK_INDEX) != 0)
  35. #define TK_IS_SINGLE(x)        (((x) & TK_DOUBLE) == 0)
  36. #define TK_IS_DOUBLE(x)        (((x) & TK_DOUBLE) != 0)
  37. #define TK_IS_DIRECT(x)        (((x) & TK_INDIRECT) == 0)
  38. #define TK_IS_INDIRECT(x)    (((x) & TK_INDIRECT) != 0)
  39. #define TK_HAS_ACCUM(x)        (((x) & TK_ACCUM) != 0)
  40. #define TK_HAS_ALPHA(x)        (((x) & TK_ALPHA) != 0)
  41. #define TK_HAS_DEPTH(x)        (((x) & TK_DEPTH) != 0)
  42. #define TK_HAS_OVERLAY(x)    (((x) & TK_OVERLAY) != 0)
  43. #define TK_HAS_UNDERLAY(x)    (((x) & TK_UNDERLAY) != 0)
  44. #define TK_HAS_STENCIL(x)    (((x) & TK_STENCIL) != 0)
  45.  
  46. /*
  47. ** Event Status
  48. */
  49.  
  50. #define    TK_LEFTBUTTON        1
  51. #define    TK_RIGHTBUTTON        2
  52. #define    TK_MIDDLEBUTTON        4
  53. #define    TK_SHIFT        1
  54. #define    TK_CONTROL        2
  55.  
  56. /* 
  57. ** Key Codes
  58. */
  59.  
  60. #define TK_RETURN        0x0D
  61. #define TK_ESCAPE        0x1B
  62. #define TK_SPACE        0x20
  63. #define TK_LEFT            0x25
  64. #define TK_UP            0x26
  65. #define TK_RIGHT        0x27
  66. #define TK_DOWN            0x28
  67. #define TK_A            'A'
  68. #define TK_B            'B'
  69. #define TK_C            'C'
  70. #define TK_D            'D'
  71. #define TK_E            'E'
  72. #define TK_F            'F'
  73. #define TK_G            'G'
  74. #define TK_H            'H'
  75. #define TK_I            'I'
  76. #define TK_J            'J'
  77. #define TK_K            'K'
  78. #define TK_L            'L'
  79. #define TK_M            'M'
  80. #define TK_N            'N'
  81. #define TK_O            'O'
  82. #define TK_P            'P'
  83. #define TK_Q            'Q'
  84. #define TK_R            'R'
  85. #define TK_S            'S'
  86. #define TK_T            'T'
  87. #define TK_U            'U'
  88. #define TK_V            'V'
  89. #define TK_W            'W'
  90. #define TK_X            'X'
  91. #define TK_Y            'Y'
  92. #define TK_Z            'Z'
  93. #define TK_a            'a'
  94. #define TK_b            'b'
  95. #define TK_c            'c'
  96. #define TK_d            'd'
  97. #define TK_e            'e'
  98. #define TK_f            'f'
  99. #define TK_g            'g'
  100. #define TK_h            'h'
  101. #define TK_i            'i'
  102. #define TK_j            'j'
  103. #define TK_k            'k'
  104. #define TK_l            'l'
  105. #define TK_m            'm'
  106. #define TK_n            'n'
  107. #define TK_o            'o'
  108. #define TK_p            'p'
  109. #define TK_q            'q'
  110. #define TK_r            'r'
  111. #define TK_s            's'
  112. #define TK_t            't'
  113. #define TK_u            'u'
  114. #define TK_v            'v'
  115. #define TK_w            'w'
  116. #define TK_x            'x'
  117. #define TK_y            'y'
  118. #define TK_z            'z'
  119. #define TK_0            '0'
  120. #define TK_1            '1'
  121. #define TK_2            '2'
  122. #define TK_3            '3'
  123. #define TK_4            '4'
  124. #define TK_5            '5'
  125. #define TK_6            '6'
  126. #define TK_7            '7'
  127. #define TK_8            '8'
  128. #define TK_9            '9'
  129.  
  130. /*
  131. ** Color Macros
  132. */
  133.  
  134. enum {
  135.     TK_BLACK = 0,
  136.     TK_RED,
  137.     TK_GREEN,
  138.     TK_YELLOW,
  139.     TK_BLUE,
  140.     TK_MAGENTA,
  141.     TK_CYAN,
  142.     TK_WHITE
  143. };
  144.  
  145. extern float tkRGBMap[8][3];
  146.  
  147. #define TK_SETCOLOR(x, y) (TK_IS_RGB((x)) ? \
  148.                    glColor3fv(tkRGBMap[(y)]) : glIndexf((y)))
  149.  
  150. /*
  151. ** RGB Image Structure
  152. */
  153.  
  154. typedef struct _TK_RGBImageRec {
  155.     GLint sizeX, sizeY;
  156.     unsigned char *data;
  157. } TK_RGBImageRec;
  158.  
  159. /*
  160. ** Prototypes
  161. */
  162.  
  163. extern void tkInitDisplayMode(GLenum);
  164. extern void tkInitPosition(int, int, int, int);
  165. extern GLenum tkInitWindow(char *);
  166. extern void tkCloseWindow(void);
  167. extern void tkQuit(void);
  168.  
  169. extern GLenum tkSetWindowLevel(GLenum);
  170. extern void tkSwapBuffers(void);
  171.  
  172. extern void tkExec(void);
  173. extern void tkExposeFunc(void (*)(int, int));
  174. extern void tkReshapeFunc(void (*)(int, int));
  175. extern void tkDisplayFunc(void (*)(void));
  176. extern void tkKeyDownFunc(GLenum (*)(int, GLenum));
  177. extern void tkMouseDownFunc(GLenum (*)(int, int, GLenum));
  178. extern void tkMouseUpFunc(GLenum (*)(int, int, GLenum));
  179. extern void tkMouseMoveFunc(GLenum (*)(int, int, GLenum));
  180. extern void tkIdleFunc(void (*)(void));
  181.  
  182. extern int tkGetColorMapSize(void);
  183. extern void tkGetMouseLoc(int *, int *);
  184. extern Display *tkGetXDisplay(void);
  185. extern Window tkGetXWindow(void);
  186.  
  187. extern void tkSetOneColor(int, float, float, float);
  188. extern void tkSetFogRamp(int, int);
  189. extern void tkSetGreyRamp(void);
  190. extern void tkSetRGBMap(int, float *);
  191. extern void tkSetOverlayMap(int, float *);
  192.  
  193. extern void tkNewCursor(GLint, GLubyte *, GLubyte *, GLenum, GLenum,
  194.             GLint, GLint);
  195. extern void tkSetCursor(GLint);
  196.  
  197. extern TK_RGBImageRec *tkRGBImageLoad(char *);
  198.  
  199. extern GLenum tkCreateStrokeFont(GLuint);
  200. extern GLenum tkCreateOutlineFont(GLuint);
  201. extern GLenum tkCreateFilledFont(GLuint);
  202. extern GLenum tkCreateBitmapFont(GLuint);
  203. extern void tkDrawStr(GLuint, char *);
  204.  
  205. extern void tkWireSphere(GLuint, float);
  206. extern void tkSolidSphere(GLuint, float);
  207. extern void tkWireCube(GLuint, float);
  208. extern void tkSolidCube(GLuint, float);
  209. extern void tkWireBox(GLuint, float, float, float);
  210. extern void tkSolidBox(GLuint, float, float, float);
  211. extern void tkWireTorus(GLuint, float, float);
  212. extern void tkSolidTorus(GLuint, float, float);
  213. extern void tkWireCylinder(GLuint, float, float);
  214. extern void tkSolidCylinder(GLuint, float, float);
  215. extern void tkWireCone(GLuint, float, float);
  216. extern void tkSolidCone(GLuint, float, float);
  217.